package web.util;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.core.Constants;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

/**
 * 控制会话权限拦截器。
 * 
 * @author CHENCYTTTL
 */
public class SessionHandlerInterceptor extends HandlerInterceptorAdapter {

	@Override
	public boolean preHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler) throws Exception {
		String url = request.getRequestURI();
		if (url.contains("/Resources/"))
			return true;
		// spring mvc 重复提交表单，会造成登录时候二次登录，因此，采用提交表单不使用，而使用$.post方式等异步调用方式
		if (url.endsWith("login.html") || url.endsWith("login")) {
			return true;
		}
		if (request.getSession().getAttribute("currentUser") == null) {
			// 此处跳转后，应该return false 不然，首先渲染界面，然后跳转，必然会出现异常
			response.sendRedirect(request.getContextPath() + "/login.html");
			return false;
		}
		return true;
	}
}